package ATM.service;

import ATM.bean.UserBean;

public interface UserService {
    /**
     * 登陆
     *
     * @param username 账号
     * @param pwd      密码
     * @return 用户对象，如果登陆失败，返回 null
     */
    UserBean login(String username, String pwd);

    /**
     * 存钱，同时添加交易明细
     *
     * @param username 账号
     * @param money    存入金额
     */
    void save(String username, Integer money);

    /**
     * 取钱
     * 1、根据帐号查询用户对象
     * 2、判断用户余额是否超支，如果超支，返回false
     * 3、否则，完成余额减 少
     * 4、添加交易明细
     *
     * @param username 账号
     * @param money    金额
     * @return 取钱是否成功
     */
    boolean get(String username, Integer money);

    /**
     * 查询
     *
     * @param username 账号
     */
    UserBean query(String username);

    /**
     * 转账
     * 1、判断转帐帐号是否存在，如果不存在，返回"转帐帐号不存在"
     * 2、判断登陆帐号余额是否充足，如果余额不足，返回“余额 不足”
     * 3、登陆帐号减少金额，转帐帐号添加金额
     * 4、登陆帐号添加转出交易记录，转帐帐号添加转入交易记录
     *
     * @param loginUsername 登陆账号
     * @param otherUsername 对方账号
     * @param money         金额
     * @return 转帐失败信息，如果转帐成功，返回null
     * ·
     */
    String trans(String loginUsername, String otherUsername, Integer money);
}
